In a digital oscilloscope, a waveform trace is a fundamental software object that provides the user with a representative view of an acquired waveform data. Vertical and horizontal scale and offset controls affect the definition of the grid on which the waveform trace is displayed. The vertical (y) and horizontal (x) extents of the grid may be expressed as the waveform frame (in vertical and horizontal units of the waveform, e.g. Volts and Seconds) or in terms of display units (e.g. pixels).
In such a digital oscilloscope, a waveform trace renderer has the responsibility to process the waveform data to produce appropriate data, and place this data in a buffer so that the data is properly scaled to the display. This may be necessary because the digital oscilloscope typically acquires many more data points than are displayable on any type of oscilloscope display, or for other reasons. Thus, the data is most often decimated appropriately so that this decimated waveform representation can be displayed.
However, the inventor of the present invention has determined that as a user changes these scale and offset controls, it is desirable for the waveform trace to be updated relative to the modified controls to provide feedback for the user, and to display the waveform trace in a form corresponding to the new scale and offset as selected by the user. As waveform data sizes become large and/or as waveform analysis functions become complex (computationally intense), such updating becomes a more time-consuming endeavor. Indeed, it has been determined that it becomes more difficult to update the waveform data and the resulting waveform trace quickly enough in response to such control changes. As a result, this may result in the user having to wait for some period of time between different settings when changing those settings to see what the screen display will look like. This in turn may cause the system to feel sluggish, may result in the user having a more difficult and cumbersome task when moving the controls, and may result in a reduced accuracy of such movements by the user.
This result is primarily based upon the need to process a new incoming data stream each time new settings are selected. As is shown in FIG. 1, Controls 110 may comprise horizontal and vertical scale and offset controls, or other variable display settings. A waveform data producer 120 produces various waveform data and waveform frame information. This produced information, along with the horizontal and vertical scale and offset controls, is provided to a waveform trace renderer 130. Trace renderer 130 provides an input trace buffer that is updated based upon the received waveform data, and an output trace buffer for indicating the data that is to be drawn to a display. Employing a dual buffer design, once the information from the output buffer is written to the display and the information to the input buffer is updated, the identity of the input buffer and the output buffer are switched. Then, the information that was updated when acting as the input buffer becomes the output buffer and is written to the display. The prior output buffer is now the input buffer and receives further updated information as above. As is apparent, each time a horizontal and vertical scale and offset control is changed, the processing by the waveform trace renderer must be performed. Based upon the volume of data, or the complexity of the required processing operations, this processing may delay the display of data on the display, as noted above.